package aor2.components;

public interface InstructionCode {
	// TODO provera

	final long dvoadrmask = 0xF000L;
	final long MOV = 0x1000L;
	final long SUB = 0x2000L;
	final long OR = 0x3000L;

	final long jednoadrmask = 0xFFC0L;
	final long INC = 0x0D00L;
	final long DEC = 0x0D40L;
	final long NOT = 0x0D80L;
	final long ASR = 0x0DC0L;
	final long JMPIND = 0x0E00L;
	final long JSRIND = 0x0E40L;

	final long skokmask = 0xFF00L;
	final long BNZ = 0x0900L;
	final long BRN = 0x0A00L;
	final long BSR = 0x0B00L;
	final long INT = 0x0300L;

	final long bezadrmask = 0x0300L;
	final long RTS = 0x0L;
	final long RTI = 0x1L;
	final long INTE = 0x2L;
	final long INTD = 0x3L;
	final long TRPE = 0x4L;
	final long TRPD = 0x5L;

	final long src1mask = 0x0FC0L;
	final long src2mask = 0x003FL;
	final long dstmask = 0x003FL;
	final long srcmask = 0x00FFL;

	final long adr1mask = 0x0E00L;
	final long reg1mask = 0x01C0L;
	final long adr2mask = 0x0038L;
	final long reg2mask = 0x0007L;

	final long pomPC = 0xFFL;

	final long regdir2 = 0;
	final long postinc2 = 8;
	final long predec2 = 16;
	final long index2 = 24;
	final long regind2 = 32;
	final long postincind2 = 40;
	final long predecind2 = 48;
	final long indexind2 = 56;

	final long regdir1 = 0;
	final long postinc1 = 0x0200L;
	final long predec1 = 0x0400L;
	final long index1 = 0x0600L;
	final long regind1 = 0x0800L;
	final long postincind1 = 0x0A00L;
	final long predecind1 = 0x0C00L;
	final long indexind1 = 0x0D00L;
}
